package com.wut.clock.mapper;

import com.wut.clock.entity.Article;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wut.clock.vo.admin.ArticleVo;
import com.wut.clock.vo.portal.ArticleCommentVo;
import com.wut.clock.vo.portal.ArticlePortalVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author 
 * @since 2022-05-31
 */
public interface ArticleMapper extends BaseMapper<Article> {

    /**
     * 查看文章列表
     * @param userId 用户id
     * @param categoryId 栏目id
     * @param articleTitle 文章标题
     * @param status 状态
     * @return 文章列表
     */
    List<ArticleVo> getArticleList(@Param("userId") Integer userId,
                                   @Param("categoryId") Integer categoryId,
                                   @Param("articleTitle") String articleTitle,
                                   @Param("status") Integer status,
                                   @Param("verifyStatus") Integer verifyStatus);

    /**
     * 查看文章详情
     * @param articleId 文章id
     * @return 文章详情
     */
    ArticleVo getArticleDetail(@Param("articleId") Integer articleId);

    /**
     * 查询文章数量
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 文章数量
     */
    Long getArticleCount(@Param("startDate") Date startDate, @Param("endDate") Date endDate);

    /**
     * 用户后台 查看自己发表的文章列表
     * @param userId 用户
     * @param categoryId 专栏
     * @param yearMonth 年月
     * @param keywords 关键字
     * @return 文章列表
     */
    List<ArticlePortalVo> getOwnArticleList(@Param("userId") Integer userId, @Param("categoryId") Integer categoryId,@Param("yearMonth") String yearMonth, @Param("keywords") String keywords);

    /**
     * 获得某篇文章下的评论
     * @param articleId 文章id
     * @return ArticleCommentVo
     */
    List<ArticleCommentVo> getArticleComment(Integer articleId);
}
